home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #4 / Amiga Plus CD - 2000 - No. 4.iso / Vollversion / CamD / development / devs / midi / cps.i < prev    next >
Text File  |  2000-05-15  |  6KB  |  210 lines

  1.  
  2.  
  3. SKIP_ODD    MACRO
  4. SOFFSET     SET     SOFFSET+1
  5.             ENDM
  6.  
  7.         STRUCTURE CheckPointSerial,0
  8.             BYTE    cps_InputPort
  9.             STRUCT    cps_pad1,31
  10.             BYTE    cps_ModeRegA
  11.             SKIP_ODD
  12.             LABEL    cps_StatusRegA
  13.             BYTE    cps_ClockSelRegA
  14.             SKIP_ODD
  15.             BYTE    cps_CommandRegA
  16.             SKIP_ODD
  17.             LABEL    cps_RecBufferA
  18.             BYTE    cps_XmitBufferA
  19.             SKIP_ODD
  20.             LABEL    cps_InputPortChange
  21.             BYTE    cps_AuxControlReg
  22.             SKIP_ODD
  23.             LABEL    cps_IntStatusReg
  24.             BYTE    cps_IntMaskReg
  25.             SKIP_ODD
  26.             LABEL    cps_CurCounterMSB
  27.             BYTE    cps_CountTimerUR
  28.             SKIP_ODD
  29.             LABEL    cps_CurCounterLSB
  30.             BYTE    cps_CountTimerLR
  31.             SKIP_ODD
  32.             BYTE    cps_ModeRegB
  33.             SKIP_ODD
  34.             LABEL    cps_StatusRegB
  35.             BYTE    cps_ClockSelRegB
  36.             SKIP_ODD
  37.             BYTE    cps_CommandRegB
  38.             SKIP_ODD
  39.             LABEL    cps_RecBufferB
  40.             BYTE    cps_XmitBufferB
  41.             SKIP_ODD
  42.             BYTE    cps_IntVectorReg
  43.             SKIP_ODD
  44.             LABEL    cps_InputPortUnlatched
  45.             BYTE    cps_OutputPortConfig
  46.             SKIP_ODD
  47.             LABEL    cps_StartCounter
  48.             BYTE    cps_OutputPortSet
  49.             SKIP_ODD
  50.             LABEL    cps_StopCounter
  51.             BYTE    cps_OutputPortReset
  52.  
  53.  
  54. ; Register bit definitions:
  55.  
  56. ;    Mode Register "1":
  57.  
  58. MR1_5DB        EQU        $0        ; 5 data bits
  59. MR1_6DB        EQU        $1        ; 6 data bits
  60. MR1_7DB        EQU        $2        ; 7 data bits
  61. MR1_8DB        EQU        $3        ; 8 data bits
  62.  
  63. MR1_EP        EQU        $0        ; Even parity
  64. MR1_OP        EQU        $4        ; Odd parity
  65. MR1_SP        EQU        $8        ; Space parity
  66. MR1_MP        EQU        $C        ; Mark parity
  67. MR1_NP        EQU        $10        ; No parity
  68. MR1_MD        EQU        $18        ; Multi-drop, Data
  69. MR1_MA        EQU        $1C        ; Multi-drop, Address
  70.  
  71. MR1_CH        EQU        $0        ; Character error mode
  72. MR1_BLK        EQU        $20        ; Block error mode
  73.  
  74. MR1_IRX        EQU        $0        ; Interrupt on Rx Ready
  75. MR1_IFF        EQU        $40        ; Interrupt on FIFO Full
  76.  
  77. MR1_RTS        EQU        $80        ; Reciever controls RTS
  78.  
  79. ; Mode Register "2":
  80.  
  81. MR2_1SB        EQU        $7        ; One stop bit
  82. MR2_2SB        EQU        $F        ; Two stop bits
  83.  
  84. MR2_CTS        EQU        $10        ; CTS enable transmitter
  85.  
  86. MR2_RTS        EQU        $20        ; Transmitter controls RTS
  87.  
  88. MR2_ECH        EQU        $40        ; Auto echo
  89. MR2_LLP        EQU        $80        ; Local loopback
  90. MR2_RLP        EQU        $C0        ; Remote loopback
  91.  
  92. ; Clock Source Register.
  93. ; These values for transmitter rate, << 4 for receiver rate.
  94.  
  95. CSR_50        EQU        $0        ; 50 baud (ACR_BRS = 0)
  96. CSR_75        EQU        $0        ; 75 baud (ACR_BRS = 1)
  97. CSR_110        EQU        $1        ; 110
  98. CSR_134        EQU        $2        ; 134.5
  99. CSR_200        EQU        $3        ; 200 (ACR_BRS=0)
  100. CSR_150        EQU        $3        ; 150 (ACR_BRS=1)
  101. CSR_300        EQU        $4        ; 300
  102. CSR_600        EQU        $5        ; 600
  103. CSR_12H        EQU        $6        ; 1200
  104. CSR_10H        EQU        $7        ; 1050 (ACR_BRS=0)
  105. CSR_20H        EQU        $7        ; 2000 (ACR_BRS=1)
  106. CSR_24H        EQU        $8        ; 2400
  107. CSR_48H        EQU        $9        ; 4800
  108. CSR_72H        EQU        $A        ; 7200 (ACR_BRS=0)
  109. CSR_18H        EQU        $A        ; 1800 (ACR_BRS=1)
  110. CSR_96H        EQU        $B        ; 9600
  111. CSR_38K        EQU        $C        ; 38,400 (ACR_BRS=0)
  112. CSR_19K        EQU        $C        ; 19,200 (ACR_BRS=1)
  113. CSR_TIM        EQU        $D        ; baud rate = Timer / 16
  114. CSR_IPX        EQU        $E        ; baud rate = IP / 16
  115. CSR_IP1        EQU        $F        ; baud rate = IP / 1
  116.  
  117. ; Command register
  118.  
  119. CR_RCE        EQU        $1        ; Enable receiver
  120. CR_RCD        EQU        $2        ; Disable receiver
  121.  
  122. CR_TE        EQU        $4        ; Enable transmitter
  123. CR_TD        EQU        $8        ; Disable transmitter
  124.  
  125. CR_MR1        EQU        $10        ; Reset MR pointer to MR1
  126. CR_RR        EQU        $20        ; Reset receiver
  127. CR_RT        EQU        $30        ; Reset transmitter
  128. CR_RE        EQU        $40        ; Reset error status
  129. CR_RCB        EQU        $50        ; Reset channel's break-change interrupt
  130. CR_SB        EQU        $60        ; Start break
  131. CR_EB        EQU        $70        ; End break
  132.  
  133. ; Status Register:
  134.  
  135. SR_RXR        EQU        $1        ; Reciever data ready
  136. SR_FFU        EQU        $2        ; Reciever FIFO full
  137. SR_TXR        EQU        $4        ; Transmitter Ready
  138. SR_TXE        EQU        $8        ; Transmitter Empty
  139. SR_OVR        EQU        $10        ; Receiver overrun
  140. SR_PAR        EQU        $20        ; Parity error
  141. SR_FRA        EQU        $40        ; Framing error
  142. SR_BRE        EQU        $80        ; Received break
  143.  
  144. ; Bit # versions...
  145. SRB_RXR        EQU        0        ; Reciever data ready
  146. SRB_FFU        EQU        1        ; Reciever FIFO full
  147. SRB_TXR        EQU        2        ; Transmitter Ready
  148. SRB_TXE        EQU        3        ; Transmitter Empty
  149. SRB_OVR        EQU        4        ; Receiver overrun
  150. SRB_PAR        EQU        5        ; Parity error
  151. SRB_FRA        EQU        6        ; Framing error
  152. SRB_BRE        EQU        7        ; Received break
  153.  
  154. ; Aux control register:
  155.  
  156. ACR_II0        EQU        $1        ; Cause interrupt on change in IP0
  157. ACR_II1        EQU        $2        ; Cause interrupt on change in IP1
  158. ACR_II2        EQU        $4        ; Cause interrupt on change in IP2
  159. ACR_II3        EQU        $8        ; Cause interrupt on change in IP3
  160.  
  161. ; Counter/timer mode:
  162.  
  163. ACR_EXT        EQU        $0        ; External clock source (IP2)
  164. ACR_TXA        EQU        $10        ; TxCA X 1 clock source
  165. ACR_TXB        EQU        $20        ; TxCB X 1 clock source
  166. ACR_X16        EQU        $30        ; X1/CLK / 16 clock source
  167. ACR_IP2        EQU        $40        ; External (IP2)
  168. ACR_X1        EQU        $60        ; X1/CLK / 1 clock source
  169.  
  170. ACR_BRS        EQU        $80        ; Baud rate line select
  171.  
  172. ; Input port change register:
  173.  
  174. IPC_LP0        EQU        $0        ; Input level P0
  175. IPC_LP1        EQU        $1        ; Input level P1
  176. IPC_LP2        EQU        $2        ; Input level P2
  177. IPC_LP3        EQU        $3        ; Input level P3
  178. IPC_DP0        EQU        $4        ; Delta detected P0
  179. IPC_DP1        EQU        $5        ; Delta detected P1
  180. IPC_DP2        EQU        $6        ; Delta detected P2
  181. IPC_DP3        EQU        $7        ; Delta detected P3
  182.  
  183. ; Interrupt status register and Interrupt Mask Register:
  184.  
  185. ISR_TRA        EQU        $0        ; Transmit Ready port A
  186. ISR_RRA        EQU        $1        ; Receiver Ready port A
  187. ISR_DBA        EQU        $2        ; Break delta A
  188. ISR_CTR        EQU        $3        ; Counter/timer ready
  189. ISR_TRB        EQU        $4        ; Transmit Ready B
  190. ISR_RRB        EQU        $5        ; Receiver Ready B
  191. ISR_DBB        EQU        $6        ; Delta Break B
  192. ISR_IPC        EQU        $7        ; Input port change
  193.  
  194. ; Latch register bit definitions, bit number versions:
  195.  
  196. LATB_DSRB     EQU        0        ; DSR for channel B
  197. LATB_DCDB     EQU        1        ; DCD for channel B
  198. LATB_RIB     EQU        2        ; RI  for channel B
  199. LATB_DSRA     EQU        3        ; DSR for channel A
  200. LATB_DCDA     EQU        4        ; DCD for channel A
  201. LATB_RIA     EQU        5        ; RI  for channel A
  202.  
  203. ; Mask versions:
  204. LAT_DSRA     EQU        (1<<LATB_DSRA)    ; DSR for channel A
  205. LAT_DCDA     EQU        (1<<LATB_DCDA)    ; DCD for channel A
  206. LAT_RIA     EQU        (1<<LATB_RIA)    ; RI  for channel A
  207. LAT_DSRB     EQU        (1<<LATB_DSRB)    ; DSR for channel B
  208. LAT_DCDB     EQU        (1<<LATB_DCDB)    ; DCD for channel B
  209. LAT_RIB     EQU        (1<<LATB_RIB)    ; RI  for channel B
  210.